package Project;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.HashMap;
import java.util.Map;

public class Server {//服务端启动类：接受客户端的请求
    //定义一个集合容器来存储管道（socket），便于服务端群发消息给我存储的管道(只要连上就存储了，下线也可以看消息列表)
    //需要用map，拿到这个管道到底是谁（是哪个客户端）到时候同步消息的时候，也知道谁发了谁什么消息给了服务端（然后服务端转发给其他人）
    //鉴于昵称可能重复，如果当key的话就会乱，可能某个人有两个管道？？？，或者相互的管道去顶掉
    public static Map<Socket,String> OnlineSockets=new HashMap<Socket, String>();//这个存的管道是那些服务端与客户端连接上的服务端socket ，
    public static void main(String[] args)
    {

        System.out.println("服务端启动");
        //注册端口

        try {

            ServerSocket ss = new ServerSocket(Constant.PORT);//常量包（类）方便修改。更容易解耦合
            while(true)//主线程负责接受客户端的请求
            {
                System.out.println("等待客户端连接");
                Socket socket = ss.accept();
                //socket.getInputStream().read()
               // OnlineSockets.put(socket);
                new ServerThread(socket).start();
                System.out.println("一个客户端连接成功");
            }



        } catch (Exception e) {
          e.printStackTrace();
        }

    }
}
